package Serializacao;


import RegrasNegocio.Posto_Saude;
import DB.ConexaoDB;
import DB.TipoCampo;
import java.sql.ResultSet;

public class Posto_Saude_DB {

    public static int getID(){
        
        ConexaoDB conexao = new ConexaoDB();
        ResultSet Dados;
        int retorno = 0;

        try {           
            conexao.ConectarDB();
            Dados = conexao.RetornaDados("SELECT GEN_ID (ID_POSTO_SAUDE, 1) from rdb$database");
            if (Dados.next()){
                retorno = Dados.getInt("GEN_ID");
            }
        } catch (Exception ex) {
            retorno = 0;
        }  
        return retorno;        
    }
    
    public static ResultSet Listar(String Descricao){
        
        ConexaoDB conexao = new ConexaoDB();
        ResultSet Dados;

        try {           
            conexao.ConectarDB();
            conexao.addParametro(1,TipoCampo.Texto,Descricao+"%");
            Dados = conexao.RetornaDados("Select ps.id_posto_saude, ps.descricao, ps.bairro From posto_saude ps where (ps.descricao like ?)");
        } catch (Exception ex) {
            Dados = null;
        }  

        return Dados;        
    }
    
    public boolean Salvar(Posto_Saude posto){
        
        ConexaoDB conexao = new ConexaoDB();
        ResultSet Dados;
        boolean resultado = false;

        try {           
            resultado = true;            
            conexao.ConectarDB();
            conexao.addParametro(1,TipoCampo.Numero,Integer.toString(posto.get_ID()));
            Dados = conexao.RetornaDados("SELECT ID_POSTO_SAUDE FROM POSTO_SAUDE WHERE (ID_POSTO_SAUDE = ?)");
 
            conexao.limparParemetros();
            if (Dados.next()) {
               conexao.addParametro(1, TipoCampo.Texto, posto.get_Descricao());
               conexao.addParametro(2, TipoCampo.Texto, posto.get_Bairro());            
               conexao.addParametro(3,TipoCampo.Numero,Integer.toString(posto.get_ID()));
               conexao.ExecutarSQL("UPDATE POSTO_SAUDE SET DESCRICAO=?, BAIRRO=? WHERE (ID_POSTO_SAUDE = ?)");                
            } else {
               conexao.addParametro(1,TipoCampo.Numero,Integer.toString(posto.get_ID()));
               conexao.addParametro(2, TipoCampo.Texto, posto.get_Descricao());
               conexao.addParametro(3, TipoCampo.Texto, posto.get_Bairro());            
               conexao.ExecutarSQL("INSERT INTO POSTO_SAUDE (ID_POSTO_SAUDE, DESCRICAO, BAIRRO) VALUES (?,?,?)");
            }
        } catch (Exception ex) {
            String msg = ex.getMessage();
            resultado = false;
        }  
        return resultado;
    }
   
    public boolean Excluir(Posto_Saude posto){
        
        ConexaoDB conexao = new ConexaoDB();
        boolean resultado = false;

        try {           
            resultado = true;            
            conexao.ConectarDB();
            conexao.limparParemetros();
            conexao.addParametro(1,TipoCampo.Numero,Integer.toString(posto.get_ID()));
            conexao.ExecutarSQL("DELETE FROM POSTO_SAUDE WHERE (ID_POSTO_SAUDE=?)");
            
        } catch (Exception ex) {
            String msg = ex.getMessage();
            resultado = false;
        }  
        return resultado;
    }
    
}
